# {{tableComment}}

> **表名**: `{{tableName}}`  
> **数据库**: `{{database}}`  
> **创建时间**: {{formatDate generateTime}}

## 表基本信息

| 字段 | 值 |
|-----|-----|
| 表名 | `{{tableName}}` |
| 描述 | {{tableComment}} |
| 所属模块 | {{#if moduleName}}{{moduleName}}{{else}}未分类{{/if}} |
| 总字段数 | {{fields.length}} |

## 字段信息

{{#each fields}}
### {{name}}

- **描述**: {{#if comment}}{{comment}}{{else}}*无描述*{{/if}}
- **类型**: `{{type}}`{{#if length}} ({{length}}){{/if}}
- **允许为空**: {{#if nullable}}是{{else}}否{{/if}}
- **默认值**: {{#if defaultValue}}{{defaultValue}}{{else}}*无默认值*{{/if}}
{{#if isPrimaryKey}}- **主键**: 是{{/if}}
{{#if isUnique}}- **唯一键**: 是{{/if}}
{{#if isAutoIncrement}}- **自增**: 是{{/if}}

{{/each}}

{{#if indexes.length}}
## 索引信息

| 索引名 | 类型 | 字段 |
|-------|------|------|
{{#each indexes}}
| {{name}} | {{type}} | {{columns}} |
{{/each}}
{{/if}}

{{#if relations.length}}
## 关联关系

| 关联表 | 关联字段 | 本表字段 | 关系类型 |
|-------|---------|---------|---------|
{{#each relations}}
| {{referencedTable}} | {{referencedColumn}} | {{column}} | {{relationType}} |
{{/each}}
{{/if}}

## API示例

### 查询列表（分页）

```typescript
/**
 * 获取{{tableComment}}分页列表
 */
import { autoPost } from '@/utils/http';
import { I{{pascalCase tableName}} } from '@/types/api';

// 分页查询示例
async function get{{pascalCase tableName}}List(pageNum = 1, pageSize = 10, conditions = {}) {
  const result = await autoPost('/query', {
    {{tableName}}: {
      where: conditions,  // 查询条件，如 ["=", "status", 1]
      page: pageNum,
      pagesize: pageSize,
      orderby: ["create_time", "desc"]
    }
  });
  
  return {
    total: result.total,
    records: result.records as I{{pascalCase tableName}}[]
  };
}
```

### 获取详情

```typescript
/**
 * 获取{{tableComment}}详情
 */
import { autoPost } from '@/utils/http';
import { I{{pascalCase tableName}} } from '@/types/api';

// 根据ID查询详情
async function get{{pascalCase tableName}}Detail(id: {{lookupPrimaryKeyType}}) {
  const result = await autoPost('/findby', {
    {{tableName}}: {
      id: id
    }
  });
  
  return result.records[0] as I{{pascalCase tableName}};
}
```

### 按条件查询

```typescript
/**
 * 按条件查询{{tableComment}}
 */
import { autoPost } from '@/utils/http';
import { I{{pascalCase tableName}} } from '@/types/api';

// 按条件查询
async function find{{pascalCase tableName}}s(conditions: any[]) {
  const result = await autoPost('/query', {
    {{tableName}}: {
      where: conditions
    }
  });
  
  return result.records as I{{pascalCase tableName}}[];
}

// 使用示例：复杂条件查询
const searchResults = await find{{pascalCase tableName}}s(
  ["and", 
    ["like", "name", "%关键词%"],
    ["=", "status", 1],
    [">=", "create_time", "2023-01-01"]
  ]
);
```

### 创建记录

```typescript
/**
 * 创建{{tableComment}}
 */
import { autoPost } from '@/utils/http';
import { I{{pascalCase tableName}} } from '@/types/api';

// 创建记录
async function create{{pascalCase tableName}}(data: Omit<I{{pascalCase tableName}}, '{{primaryKey}}' | 'create_time' | 'update_time'>) {
  const result = await autoPost('/crud/create', {
    {{tableName}}: data
  });
  
  return result;
}
```

### 更新记录

```typescript
/**
 * 更新{{tableComment}}
 */
import { autoPost } from '@/utils/http';
import { I{{pascalCase tableName}} } from '@/types/api';

// 更新记录
async function update{{pascalCase tableName}}(id: {{lookupPrimaryKeyType}}, data: Partial<I{{pascalCase tableName}}>) {
  const result = await autoPost('/crud/update', {
    {{tableName}}: {
      ...data,
      where: { id }
    }
  });
  
  return result;
}
```

### 删除记录

```typescript
/**
 * 删除{{tableComment}}
 */
import { autoPost } from '@/utils/http';

// 删除记录
async function delete{{pascalCase tableName}}(id: {{lookupPrimaryKeyType}}) {
  const result = await autoPost('/crud/delete', {
    {{tableName}}: {
      id: id
    }
  });
  
  return result;
}
```

### 批量操作

```typescript
/**
 * 批量操作{{tableComment}}
 */
import { autoPost } from '@/utils/http';
import { I{{pascalCase tableName}} } from '@/types/api';

// 批量创建
async function bulkCreate{{pascalCase tableName}}s(dataList: Array<Omit<I{{pascalCase tableName}}, '{{primaryKey}}' | 'create_time' | 'update_time'>>) {
  const requests = dataList.map(data => ({
    {{tableName}}: data
  }));
  
  const result = await autoPost('/crud', {
    opts: {
      crud: 'create'
    },
    reqs: requests
  });
  
  return result;
}

// 批量删除
async function bulkDelete{{pascalCase tableName}}s(ids: {{lookupPrimaryKeyType}}[]) {
  const requests = ids.map(id => ({
    {{tableName}}: {
      id: id
    }
  }));
  
  const result = await autoPost('/crud', {
    opts: {
      crud: 'delete'
    },
    reqs: requests
  });
  
  return result;
}
```

## 注意事项

- 该表的主键为: {{#if primaryKey}}`{{primaryKey}}`{{else}}*无主键*{{/if}}
- 字段 {{#each requiredFields}}`{{this}}`{{#unless @last}}、{{/unless}}{{/each}} 为必填字段
- 查询条件使用前缀表达式构建，如 `["=", "字段名", "值"]`
- 所有接口均使用 POST 请求方式
- 可以通过 `opts` 参数设置额外选项，如事务、JSON字段等

---

*本文档由金牛座API文档与类型生成工具自动生成于 {{formatDate generateTime}}* 